home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_site.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  8KB  |  249 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. """Tests for 'site'.
  5.  
  6. Tests assume the initial paths in sys.path once the interpreter has begun
  7. executing have not been removed.
  8.  
  9. """
  10. import unittest
  11. from test.test_support import TestSkipped, TestFailed, run_unittest, TESTFN
  12. import __builtin__
  13. import os
  14. import sys
  15. import encodings
  16. import tempfile
  17. if 'site' in sys.modules:
  18.     import site
  19. else:
  20.     raise TestSkipped('importation of site.py suppressed')
  21.  
  22. class HelperFunctionsTests(unittest.TestCase):
  23.     '''Tests for helper functions.
  24.  
  25.     The setting of the encoding (set using sys.setdefaultencoding) used by
  26.     the Unicode implementation is not tested.
  27.  
  28.     '''
  29.     
  30.     def setUp(self):
  31.         '''Save a copy of sys.path'''
  32.         self.sys_path = sys.path[:]
  33.  
  34.     
  35.     def tearDown(self):
  36.         '''Restore sys.path'''
  37.         sys.path = self.sys_path
  38.  
  39.     
  40.     def test_makepath(self):
  41.         path_parts = ('Beginning', 'End')
  42.         original_dir = os.path.join(*path_parts)
  43.         (abs_dir, norm_dir) = site.makepath(*path_parts)
  44.         self.failUnlessEqual(os.path.abspath(original_dir), abs_dir)
  45.         if original_dir == os.path.normcase(original_dir):
  46.             self.failUnlessEqual(abs_dir, norm_dir)
  47.         else:
  48.             self.failUnlessEqual(os.path.normcase(abs_dir), norm_dir)
  49.  
  50.     
  51.     def test_init_pathinfo(self):
  52.         dir_set = site._init_pathinfo()
  53.         for path in sys.path:
  54.             if path and os.path.isdir(path):
  55.                 continue
  56.             _[1][site.makepath(path)[1]]
  57.         
  58.  
  59.     
  60.     def pth_file_tests(self, pth_file):
  61.         '''Contain common code for testing results of reading a .pth file'''
  62.         self.failUnless(pth_file.imported in sys.modules, '%s not in sys.path' % pth_file.imported)
  63.         self.failUnless(site.makepath(pth_file.good_dir_path)[0] in sys.path)
  64.         self.failUnless(not os.path.exists(pth_file.bad_dir_path))
  65.  
  66.     
  67.     def test_addpackage(self):
  68.         pth_file = PthFile()
  69.         pth_file.cleanup(prep = True)
  70.         
  71.         try:
  72.             pth_file.create()
  73.             site.addpackage(pth_file.base_dir, pth_file.filename, set())
  74.             self.pth_file_tests(pth_file)
  75.         finally:
  76.             pth_file.cleanup()
  77.  
  78.  
  79.     
  80.     def test_addsitedir(self):
  81.         pth_file = PthFile()
  82.         pth_file.cleanup(prep = True)
  83.         
  84.         try:
  85.             pth_file.create()
  86.             site.addsitedir(pth_file.base_dir, set())
  87.             self.pth_file_tests(pth_file)
  88.         finally:
  89.             pth_file.cleanup()
  90.  
  91.  
  92.  
  93.  
  94. class PthFile(object):
  95.     '''Helper class for handling testing of .pth files'''
  96.     
  97.     def __init__(self, filename_base = TESTFN, imported = 'time', good_dirname = '__testdir__', bad_dirname = '__bad'):
  98.         '''Initialize instance variables'''
  99.         self.filename = filename_base + '.pth'
  100.         self.base_dir = os.path.abspath('')
  101.         self.file_path = os.path.join(self.base_dir, self.filename)
  102.         self.imported = imported
  103.         self.good_dirname = good_dirname
  104.         self.bad_dirname = bad_dirname
  105.         self.good_dir_path = os.path.join(self.base_dir, self.good_dirname)
  106.         self.bad_dir_path = os.path.join(self.base_dir, self.bad_dirname)
  107.  
  108.     
  109.     def create(self):
  110.         '''Create a .pth file with a comment, blank lines, an ``import
  111.         <self.imported>``, a line with self.good_dirname, and a line with
  112.         self.bad_dirname.
  113.  
  114.         Creation of the directory for self.good_dir_path (based off of
  115.         self.good_dirname) is also performed.
  116.  
  117.         Make sure to call self.cleanup() to undo anything done by this method.
  118.  
  119.         '''
  120.         FILE = open(self.file_path, 'wU')
  121.         
  122.         try:
  123.             print >>FILE, '#import @bad module name'
  124.             print >>FILE, '\n'
  125.             print >>FILE, 'import %s' % self.imported
  126.             print >>FILE, self.good_dirname
  127.             print >>FILE, self.bad_dirname
  128.         finally:
  129.             FILE.close()
  130.  
  131.         os.mkdir(self.good_dir_path)
  132.  
  133.     
  134.     def cleanup(self, prep = False):
  135.         '''Make sure that the .pth file is deleted, self.imported is not in
  136.         sys.modules, and that both self.good_dirname and self.bad_dirname are
  137.         not existing directories.'''
  138.         if os.path.exists(self.file_path):
  139.             os.remove(self.file_path)
  140.         
  141.         if prep:
  142.             self.imported_module = sys.modules.get(self.imported)
  143.             if self.imported_module:
  144.                 del sys.modules[self.imported]
  145.             
  146.         elif self.imported_module:
  147.             sys.modules[self.imported] = self.imported_module
  148.         
  149.         if os.path.exists(self.good_dir_path):
  150.             os.rmdir(self.good_dir_path)
  151.         
  152.         if os.path.exists(self.bad_dir_path):
  153.             os.rmdir(self.bad_dir_path)
  154.         
  155.  
  156.  
  157.  
  158. class ImportSideEffectTests(unittest.TestCase):
  159.     """Test side-effects from importing 'site'."""
  160.     
  161.     def setUp(self):
  162.         '''Make a copy of sys.path'''
  163.         self.sys_path = sys.path[:]
  164.  
  165.     
  166.     def tearDown(self):
  167.         '''Restore sys.path'''
  168.         sys.path = self.sys_path
  169.  
  170.     
  171.     def test_abs__file__(self):
  172.         site.abs__file__()
  173.         for module in (sys, os, __builtin__):
  174.             
  175.             try:
  176.                 self.failUnless(os.path.isabs(module.__file__), `module`)
  177.             continue
  178.             except AttributeError:
  179.                 continue
  180.                 continue
  181.             
  182.  
  183.         
  184.  
  185.     
  186.     def test_no_duplicate_paths(self):
  187.         site.removeduppaths()
  188.         seen_paths = set()
  189.         for path in sys.path:
  190.             self.failUnless(path not in seen_paths)
  191.             seen_paths.add(path)
  192.         
  193.  
  194.     
  195.     def test_add_build_dir(self):
  196.         pass
  197.  
  198.     
  199.     def test_setting_quit(self):
  200.         self.failUnless(hasattr(__builtin__, 'quit'))
  201.         self.failUnless(hasattr(__builtin__, 'exit'))
  202.  
  203.     
  204.     def test_setting_copyright(self):
  205.         self.failUnless(hasattr(__builtin__, 'copyright'))
  206.         self.failUnless(hasattr(__builtin__, 'credits'))
  207.  
  208.     
  209.     def test_setting_help(self):
  210.         self.failUnless(hasattr(__builtin__, 'help'))
  211.  
  212.     
  213.     def test_aliasing_mbcs(self):
  214.         if sys.platform == 'win32':
  215.             import locale as locale
  216.             if locale.getdefaultlocale()[1].startswith('cp'):
  217.                 for value in encodings.aliases.aliases.itervalues():
  218.                     if value == 'mbcs':
  219.                         break
  220.                         continue
  221.                 
  222.             
  223.         
  224.  
  225.     
  226.     def test_setdefaultencoding_removed(self):
  227.         self.failUnless(not hasattr(sys, 'setdefaultencoding'))
  228.  
  229.     
  230.     def test_sitecustomize_executed(self):
  231.         if not sys.modules.has_key('sitecustomize'):
  232.             
  233.             try:
  234.                 import sitecustomize
  235.             except ImportError:
  236.                 pass
  237.  
  238.             self.fail('sitecustomize not imported automatically')
  239.         
  240.  
  241.  
  242.  
  243. def test_main():
  244.     run_unittest(HelperFunctionsTests, ImportSideEffectTests)
  245.  
  246. if __name__ == '__main__':
  247.     test_main()
  248.  
  249.